home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / BASIC / 0745.ZIP / CASESHFT.BAS < prev    next >
BASIC Source File  |  1986-09-21  |  2KB  |  60 lines

  1. '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2. '
  3. ' CASESHFT -  A subroutine to convert the case of alphabet characters within
  4. '             a supplied string according to the supplied select type.
  5. '
  6. ' Author.:    Frank R. Aguilar
  7. '             P O Box 2353
  8. '             Laredo, TX  78044-2353     CIS ID# 72447,3304
  9. '
  10. ' Date...:    September 21, 1986
  11. '
  12. ' EXAMPLE:    CALL CASESHIFT (X$,SELECT%)
  13. '
  14. ' Where..:       X$ - String of which is to be converted.
  15. '           SELECT% - Select type of one of the following:
  16. '                     1 - Convert all alphabet characters to upper case.
  17. '                     2 - Convert all alphabet characters to lower case.
  18. '                     3 - Convert first byte of alphabet word to upper case
  19. '                         and the rest of the bytes of that word to lower.
  20. '
  21. '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  22. SUB CASESHFT (X$,SELECT%) STATIC
  23.  
  24.    IF SELECT%=1 THEN
  25.  
  26.       FOR I%=1 TO LEN(X$)
  27.      X%=ASC(MID$(X$,I%,1))
  28.      LCASE%=(X%>96 AND X%<123)
  29.      IF LCASE% THEN MID$(X$,I%,1)=CHR$(X% XOR 32)
  30.       NEXT I%
  31.  
  32.    ELSEIF SELECT%=2 THEN
  33.  
  34.       FOR I%=1 TO LEN(X$)
  35.      X%=ASC(MID$(X$,I%,1))
  36.      LCASE%=(X%>64 AND X%<91)
  37.      IF LCASE% THEN MID$(X$,I%,1)=CHR$(X% XOR 32)
  38.       NEXT I%
  39.  
  40.    ELSEIF SELECT%=3 THEN
  41.  
  42.       LB%=0
  43.       FOR I%=1 TO LEN(X$)
  44.     X%=ASC(MID$(X$,I%,1))
  45.     UCASE%=(X%>64 AND X%<91)
  46.     LCASE%=(X%>96 AND X%<123)
  47.     ALPHA%=UCASE% OR LCASE%
  48.     IF ALPHA% THEN
  49.        IF(LB% AND UCASE%)OR(LB%=0 AND LCASE%) THEN_
  50.           MID$(X$,I%,1)=CHR$(X% XOR 32)
  51.        LB%=1
  52.     ELSE
  53.        LB%=0
  54.     END IF
  55.       NEXT I%
  56.  
  57.    END IF
  58.  
  59. END SUB
  60.